---
title: Excel workbook to PDF
summary: Convert an .xls/.xlsx workbook to PDF via the Syncfusion Excel-to-PDF engine.
status: draft
owner: SAIF Doc Gen
last_reviewed: 2026-09-17
library: PdfAPI.SyncFusionCore
reference_type: package
operation_id: OP-SFC-004
trigger: Called by ConverterFactory for xls/xlsx extensions
---

# Excel workbook to PDF

Converts an Excel workbook stream to PDF bytes using the Syncfusion `ExcelToPdfConverter`, optionally at PDF/A-1b conformance.

| Field | Value |
| --- | --- |
| **Operation ID** | OP-SFC-004 |
| **Trigger** | Called by [Execute a single conversion (converter template)](execute-single-conversion.md) via `ExcelConverter.ConvertItem`, dispatched from [Convert a source document to PDF](convert-source-document-to-pdf.md) for `xls`/`xlsx` |
| **Inputs** | Source `Stream`, `ConvertRequest` |
| **Outputs** | PDF `byte[]` |
| **Primary components** | `ExcelConverter.ConvertItem` |
| **Entry point** | `PdfApi.SyncFusionCore\Convert\ExcelConverter.cs` |

## Steps

1. Create `ExcelToPdfConverter(stream)` and `ExcelToPdfConverterSettings`.
2. When `request.Options.IsPdfa`, set `settings.PdfConformanceLevel = Pdf_A1B` ([BR-SFC-011](../business-rules.md#br-sfc-011-pdf%2Fa-conformance-level-a1b)).
3. Call `converter.Convert(settings)`, save to a `MemoryStream`, and return the bytes.

## Process flow

The following diagram visualizes this operation's control flow.

```mermaid
flowchart TD
	Start(["ConvertItem called<br>with stream, request"]) --> Create["Create ExcelToPdfConverter<br>and settings"]
	Create --> PdfaCheck{"Options.IsPdfa?"}
	PdfaCheck -->|Yes| SetConf["Set PdfConformanceLevel<br>= Pdf_A1B"]
	PdfaCheck -->|No| Convert[converter.Convert settings]
	SetConf --> Convert
	Convert --> Save[Save to MemoryStream]
	Save --> Return([Return PDF bytes])
```

## Failure and edge-case behavior

- Any Syncfusion conversion failure surfaces as an exception, which is caught by
  [Execute a single conversion (converter template)](execute-single-conversion.md) and turned into a failed `PdfResult` rather than propagated here.

## Related documentation
- [Operations and processes](../operations-processes.md)
- [Business rules](../business-rules.md)

## Sources
- `PdfApi.SyncFusionCore\Convert\ExcelConverter.cs`
